As computing systems have improved in performance, they have been adapted for a wide range of data processing roles. Some applications call for systems that can process incoming data as it arrives rather than waiting for a complete data set. This may be referred to as stream processing. At any given time, a stream processing pipeline may include data in various stages of the process. While a first portion of the data stream is being received, older portions of the stream may already be undergoing processing, and other portions of the stream of data may already have completed. For this reason and others, significantly different system architectures may be used for stream processing applications than static processing applications, and managing such architectures is a considerable task for even the most modest stream applications.